package p4;

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface ChatServidorInterface extends Remote{

	/**
	 * Este metodo recibe una instancia ChatClienteInterface y debe agregar al cliente
	 * a la lista de clientes conectados al servidor. Para esto, el servidor debe tener una
	 * variable de instancia donde vaya guardando los clientes que se van agregando.
	 * Esta variable puede ser del tipo ArrayList o Vector. Ademas, el metodo se debe
	 * encargar de enviar la informacion actualizada al resto de los clientes.
	 * @param cliente
	 */
	void agregarCliente(ChatClienteInterface cliente) throws RemoteException;
	
	/**
	 * Elimina al cliente que tenga el nombre igual al String s de la lista de usuarios
	 * conectados y envia la informacion actualizada de los clientes conectados a todos
	 * los clientes.
	 */
	void borrarCliente(ChatClienteInterface s) throws RemoteException;
	
	/**
	 * El servidor recibe el mensaje s desde el cliente c, debe revisar si el mensaje
	 * corresponde a un mensaje para todos los usuarios del chat o un usuario en particular
	 * y debe enviar este mensaje a quien corresponda.
	 * @param s
	 * @param c
	 */
	public void enviarMensaje(String s, ChatClienteInterface c) throws RemoteException;

}
